-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AppImage fails to open in Fedora 35 (or any glib > 2.68) due to gmodule symbol lookup error #323
Comments
I had the same problem due to the libgmodule library.
It's not ideal, but it works as long as the option to remove libraries from the command line is not implemented. |
If you have a chance, please try this appimage and let me know if it works. |
This will fix an error when an AppImage was created with glib < 2.70 and executed with glib >= 2.70: symbol lookup error: libgio-2.0.so.0: undefined symbol: g_module_open_full Full analysis: project-slippi/Ishiiruka#323
This will fix an error when an AppImage was created with glib < 2.70 and executed with glib >= 2.70: symbol lookup error: libgio-2.0.so.0: undefined symbol: g_module_open_full Full analysis: project-slippi/Ishiiruka#323 Also fixes knarfS/smuview#40
@NikhilNarayana Hey, I tried the AppImage file because I am stuck with the same problem here. It does not work, I get the same error.
|
Ok, attempt two https://github.com/project-slippi/Ishiiruka/suites/4807077632/artifacts/135081598. hopefully this does what I want. |
It presents a different error now. @NikhilNarayana
|
Fixed symbol lookup error: /usr/lib/libgio-2.0.so.0: undefined symbol: g_module_open_full and packaging to avoid unecessary files in the AppImage. Workaround reference: project-slippi/Ishiiruka#323.
I've went ahead and fixed this in place on v2.3.3 cause i'm not gonna wait for the upstream folks to fix it. If you use the Launcher, run |
Alright I will give that a shot. |
Worked fine for me. |
It's been over a year -- is there any progress updates on this issue? 😢 I'm having the same problem on Ubuntu 22.04, when trying to open the PulseView/Sigrok AppImage:
|
The "Play" button from the Slippi Launcher Appimage didn't do anything, and it just crashes:
(This was initially reported here project-slippi/slippi-launcher#239 but the issue is in Ishiiruka)
Steps to Reproduce
Workaround
TLDR
Basically:
libgio
is taken from the host filesystem, and since GNOME 41 / glib version 2.70, gio depends on theg_module_open_full
API added to gmodule in 2.70 (https://gitlab.gnome.org/GNOME/glib/-/commit/e74c955335921bd2e011c14723062bfd7cf4cc37).So we need to match libgio and libgmodule. Either both from the host system, or neither from the host system.
Investigation
following AppImage troubleshooting (https://appimage-builder.readthedocs.io/en/latest/advanced/troubleshooting.html#missing-libraries), I used
LD_DEBUG=all
and compared the logs with and without theLD_PRELOAD
.It became apparent that in the broken case, these shared libraries are loaded from the host filesystem instead of the AppImage:
I then explored the AppImage filesystem with:
~/.config/Slippi\ Launcher/netplay/Slippi_Online-x86_64.AppImage --appimage-mount
and explored which shared libraries were needed, and which were bundled:
I looked into how the AppImage is built to see if there was a manual list of libraries to include, but the incorrect behavior is already automated away (https://github.com/project-slippi/Ishiiruka/blob/slippi/build-appimage.sh#L49-L53).
Proposed solution
There's an open issue filed for linuxdeploy to exclude certain libraries (e.g. we could use it to exclude libgmodule), and there are some workarounds listed. linuxdeploy/linuxdeploy#29
As you can see in that ticket, apparently AppImage always excludes libgio https://docs.appimage.org/introduction/concepts.html#do-not-depend-on-system-provided-resources.
And the AppImage github action (https://github.com/project-slippi/slippi-launcher/blob/main/.github/workflows/build.yml#L17) uses "ubuntu-latest" which is ubuntu 20.04 (https://github.com/actions/virtual-environments#available-environments), but even newer versions of Ubuntu don't have a new enough gmodule. https://packages.ubuntu.com/search?keywords=glib2.0
At least on my Fedora 35 system, libgmodule is the only library included in the AppImage which is a part of glib:
So I think the safest way to address this issue is to require that systems have their distro's glib2 package installed, then we can remove libgmodule from the AppImage.
The text was updated successfully, but these errors were encountered: